home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / cstdio.arc / SRC.ARC / FDOPEN.C < prev    next >
C/C++ Source or Header  |  1985-05-28  |  728b  |  30 lines

  1. /*    fdopen.c - associate stream with file descriptor, return file pointer.
  2.     (C) Copyright 1985 Gregory R. Mansfield - All Rights Reserved.
  3.     G. R. Mansfield.  85/05/28.
  4.     Ver 1.0-5528.
  5. */
  6.  
  7. #include <stdio.h>
  8.  
  9. FILE *fdopen(fd, mode)
  10. register char *mode;
  11. register int fd;
  12. {
  13.     register FILE *fp;
  14.  
  15.     if (*mode != 'r' && *mode != 'w' && *mode != 'a')
  16.         return(NULL);
  17.     for (fp = _iob; fp < _iob + _NFILE; fp++)
  18.         if ((fp->_flag & (_READ | _WRITE)) == 0)
  19.             break;    /* found free slot */
  20.     if (fp >= _iob + _NFILE)    /* no free slots found */
  21.         return(NULL);
  22.  
  23.     fp->_fd = fd;
  24.     fp->_cnt = 0;
  25.     fp->_base = NULL; 
  26.     fp->_flag &= ~(_READ | _WRITE | _UNBUF);
  27.     fp->_flag |= (*mode == 'r') ? _READ : _WRITE;    
  28.     return(fp);
  29. }
  30.